[% setvar title The Perl 6 Summary for the week ending 2005-10-09 %]
<div id="archive-notice">
    <h3>This file is part of the Perl 6 Archive</h3>
    <p>To see what is currently happening visit <a href="http://www.perl6.org/">http://www.perl6.org/</a></p>
</div>
<div class='pod'>
<a name='The Perl 6 Summary for the week ending 2005-10-09'></a><h1>The Perl 6 Summary for the week ending 2005-10-09</h1>
<p>Hello, and welcome to the first Perl 6 Summary to be published on my website
rather than its former home at <a href='http://www.perl.com/' target='_blank'>www.perl.com</a></p>
<a name='This week in perl6-compiler'></a><h1>This week in perl6-compiler</h1>
<a name='PGE error on failing subrules'></a><h2>PGE error on failing subrules</h2>
<p>Allison broke the resounding silence of the last two weeks by posting about
some PGE errors she was seeing. No reply yet.</p>
<p><a href='http://groups.google.com/groups?threadm=58E82E88-87BF-4032-ACC8-0DCB4597ECBE@perl.org' target='_blank'>groups.google.com</a></p>
<a name='Tests converted from pugs' rules.t to Parrot::Test::PGE'></a><h2>Tests converted from pugs' <b><i>rules.t</i></b> to Parrot::Test::PGE</h2>
<p>Yuval Kogman announced that he'd written a script to convert pugs's rules tests
into Parrot tests. The resulting test suite still needs some attention, and he
outlined what was needed. No response so far on the list.</p>
<p><a href='http://groups.google.com/groups?threadm=20051007150709.GS23889@woobling.org' target='_blank'>groups.google.com</a></p>
<a name='Meanwhile, in perl6-internals'></a><h1>Meanwhile, in perl6-internals</h1>
<a name='Variable registers'></a><h2>Variable registers</h2>
<p>Klaas-Jan Stol wondered about how the new lexical scheme was going to work. In
particular, he wanted to know what was happening to scratchpads. Leo gave a
very brief overview of the new scheme, which uses register frames for static
lexicals and more conventional scratchpads for dynamic lexicals. As I
understand it, they'll look pretty much the same from the PIR writer's point of
view. Leo promised a PDD from Chip in the nearish future which would thrash out
the details.</p>
<p><a href='http://groups.google.com/groups?threadm=4340FD95.3060804@home.nl' target='_blank'>groups.google.com</a></p>
<a name='Exception handlers and calling conventions'></a><h2>Exception handlers and calling conventions</h2>
<p>Roger Browne wanted to know if exception handling had changed at the same time
as the calling conventions. He presented some code that behaved differently
depending on the Parrot version. Leo replied that exceptions still wind up
in P5 and Roger had found a bug. So Leo fixed it.</p>
<p><a href='http://groups.google.com/groups?threadm=1128347215.6680.9.camel@eiffel.demon.co.uk' target='_blank'>groups.google.com</a></p>
<a name='Parrot 0.3.0 TODO'></a><h2>Parrot 0.3.0 TODO</h2>
<p>Having successfully got Parrot building on his Cygwin installation, Robert
Eaglestone was casting around for something to do and listed a few
possibilities. Will Coleda replied that he'd quite like to see a working Parrot
equivalent to Perl 5's $0.</p>
<p><a href='http://groups.google.com/groups?threadm=901109290555994297CB0F3E83C35BCA6BE59F@usplm235.amer.corp.eds.com' target='_blank'>groups.google.com</a></p>
<a name='Parrot 0.3.0 and Tru64'></a><h2>Parrot 0.3.0 and Tru64</h2>
<p>Jarkko Hietaniemi posted a bunch of issues with Parrot on the Tru64
architecture. Leo addressed them. I'm not sure they're all fixed yet though.</p>
<a name='TCL - Compiling'></a><h2>TCL - Compiling</h2>
<p>Will Coleda announced that ParTcl is now a compiler. Some tests are failing but
Will claimed that this is because Jerry Gay was getting bored with all the
tests passing. Jerry was delighted. As Will said later in the thread, the
current iteration is doing the bare minimum needed to be called a compiler, but
of course that will change over time. Good work Will.</p>
<p><a href='http://groups.google.com/groups?threadm=3CD436E4-DE99-4483-A64B-F5B3BB37EB83@coleda.com' target='_blank'>groups.google.com</a></p>
<a name='BROKEN.pod'></a><h2><b><i>BROKEN.pod</i></b></h2>
<p>Hey, now he's no longer my editor, I don't have to worry about making sure I
don't put his name at the beginning of a sentence! Anyhow, chromatic posted a
first cut at <b><i>BROKEN.pod</i></b>, the big list of broken stuff. There followed some
discussion of how this should be organised in the future, particularly on the
RT side. After discussion, it was decided to keep it as a single file for now,
but to aim for generating it from multiple RT tickets in the future.</p>
<p><a href='http://groups.google.com/groups?threadm=1128388650.19093.60.camel@localhost' target='_blank'>groups.google.com</a></p>
<a name='Stack call directives are deprecated'></a><h2>Stack call directives are deprecated</h2>
<p>Using <code>.param</code>, <code>.arg</code>, <code>.return</code>, <code>.result</code> and <code>call</code> to do stack based
calling conventions is now deprecated. Use <code>save</code>, <code>restore</code>, <code>bsr</code> and
<code>ret</code> instead. Or, ideally, use the standard Parrot calling conventions.</p>
<p><a href='http://groups.google.com/groups?threadm=4342A280.6080701@toetsch.at' target='_blank'>groups.google.com</a></p>
<a name='Deprecation of rx ops'></a><h2>Deprecation of rx ops</h2>
<p>Brent Royal-Gordon confirmed that he was happy enough to see his experimental
regular expression specific ops removed from Parrot.</p>
<p>They've not been removed yet, but they're certainly deprecated.</p>
<p><a href='http://groups.google.com/groups?threadm=b8b9a5110510040941t263c4cdy89f2cbee4fa9ed83@mail.gmail.com' target='_blank'>groups.google.com</a></p>
<a name='Software Architecture of Parrot'></a><h2>Software Architecture of Parrot</h2>
<p>Klaas-Jan Stol informed us that his Software Architecture professor had
approved his proposal to write a paper on the architecture of Parrot. He
outlined his plans for the paper and hoped that he would be able to count on
people for proof-reading when the time came. Leo thought it was a marvellous
idea (so do I come to that, but I didn't say anything on the list.)</p>
<p><a href='http://groups.google.com/groups?threadm=4342DBA5.2000908@home.nl' target='_blank'>groups.google.com</a></p>
<a name='ParTcl command line options, etc'></a><h2>ParTcl command line options, etc</h2>
<p>Will Coleda kept us abreast of his progress with ParTcl in this thread,
initially announcing the new <code>-e</code> flag which allowed for writing
one liners. After a certain amount of havering before a final interface arrived,
ParTcl also acquired a --pir flag, which dumps the results of compilation to a
PIR file.</p>
<p><a href='http://groups.google.com/groups?threadm=F4B26956-DF5E-4473-944F-905F0B6E67BF@coleda.com' target='_blank'>groups.google.com</a></p>
<a name='BASIC compiler'></a><h2>BASIC compiler</h2>
<p>Will Coleda (does the man never sleep?) announced that the BASIC compiler is
(sort of) working again with Parrot 0.3.0. There are still problems with the
windows display code (the offending code is simply commented out), but code
that doesn't need that appears to be working now. He noted that BASIC could
really use a decent test suite, right now he was simply working to get programs
like <b><i>eliza2.bas</i></b> and <b><i>wumpus.bas</i></b> working, which is okay as far as it goes,
but he is sure that some parts of the language remain broken.</p>
<p><a href='http://groups.google.com/groups?threadm=22A98AA7-1D67-4603-B12D-ADC724A8B5B8@coleda.com' target='_blank'>groups.google.com</a></p>
<a name='Meanwhile, in perl6-language'></a><h1>Meanwhile, in perl6-language</h1>
<a name='my $key is sensitive'></a><h2><code>my $key is sensitive</code></h2>
<p>While working on implementing a cipher framework for Perl 6, Brent Royal-Gordon
realised it'd be really useful if he could mark a variable as 'sensitive' or
'secret', which would force the language to overwrite the memory used by the
variable before deallocating it and to try and avoid swapping the value out
to disk. There was some discussion -- some favourable, some not -- and a
suggestion to refer the question to perl6-compiler.</p>
<p><a href='http://groups.google.com/groups?threadm=b8b9a5110510032258i2686203co95d435fa0fe42947@mail.gmail.com' target='_blank'>groups.google.com</a></p>
<a name='zip: stop when and where?'></a><h2><code>zip</code>: stop when and where?</h2>
<p>The zip <code>¥</code> operator's dead simple isn't it? You just do</p>
<pre>    @a ¥ @b # @a[0], @b[0], @a[1], @b[1], @a[2], @b[2] ...</pre>
<p>Well, yes. And no.</p>
<p>Juerd asked what zip should do given <code>1..3</code> and <code>1..6</code>. He outlined 4
distinct possibilities, all of which had their partisans. Interestingly, Damian
proposed the most draconian of all the possibilities for the default behaviour,
arguing that it was the safest way to go. The suggestion was that you could
call zip with an adverb to specify different behaviour. As you can probably
guess, there was plenty of discussion.</p>
<p><a href='http://groups.google.com/groups?threadm=20051004190015.GW24163@c4.convolution.nl' target='_blank'>groups.google.com</a></p>
<a name='A listop, a block and a dot'></a><h2>A listop, a block and a dot</h2>
<p>Miroslav Silovic asked about a corner case he'd run across while playing with
pugs. It turns out that that slurpy context doesn't quite behave as he
expected (or even as it should). Autrijus fixed it. He did, however, wonder
about the precedence of</p>
<pre>    f:{1}.()</pre>
<p>It turns out that Pugs does the right thing with this.</p>
<p><a href='http://groups.google.com/groups?threadm=a03a39ec0510041525u2d548a98r7e884ffcca480aa9@mail.gmail.com' target='_blank'>groups.google.com</a></p>
<a name='Exceptuations'></a><h2>Exceptuations</h2>
<p>Resumable exceptions continue to make p6l's branes hurt.</p>
<p><a href='http://groups.google.com/groups?threadm=PGM.20051005155751.6833.5867@edison.ioppublishing.com' target='_blank'>groups.google.com</a></p>
<a name='Roles and trust'></a><h2>Roles and trust</h2>
<p>Ovid made some observations about why he felt it would be good if Roles could
specify trust. Luke wasn't sure it was necessary, Ovid was pretty sure it
was. Your summarizer wasn't entirely sure what they were talking about.</p>
<p><a href='http://groups.google.com/groups?threadm=20051005202257.57754.qmail@web60816.mail.yahoo.com' target='_blank'>groups.google.com</a></p>
<a name='$value but lexically'></a><h2><code>$value but lexically</code></h2>
<p>Dave Whipp wanted to be able to attach a <code>but</code> property to a value in a way
that would only make the property visible within the lexical scope in which it
was declared. Luke thought it could be done with lexically scoped roles
(because a property is just a role). It looked rather ugly to me, but that's
life I guess.</p>
<p><a href='http://groups.google.com/groups?threadm=20051006185244.1621.qmail@lists.develooper.com' target='_blank'>groups.google.com</a></p>
<a name='Type annotations'></a><h2>Type annotations</h2>
<p>Autrijus convinced Luke that we have to nail down the semantics of type
annotation without <code>use static</code>. So, prior to nailing anything down, Luke
posted a proposal and asked for arguments either way. Not surprisingly, he got
several. It's a matter of when and how things should break if called with the
wrong type -- some people want more compile time failures, others want more
runtime coercion. The phrase 'can of worms' springs to mind.</p>
<p><a href='http://groups.google.com/groups?threadm=7ca3f0160510061644h75abf582t4d999c5929a249cd@mail.gmail.com' target='_blank'>groups.google.com</a></p>
<a name='Sane (less insane) pair semantics'></a><h2>Sane (less insane) pair semantics</h2>
<p>You may remember a few summaries back, Luke posted a modest proposal about
demagicalizing pairs. Ingo Blechschmidt posted the results of further
discussion of this on the #perl6 irc channel. It all looks pretty sane to
me. Discussion of corner cases ensued, and the proposed spec seemed to bear up
pretty well. Certainly the initial response was favourable.</p>
<p><a href='http://groups.google.com/groups?threadm=dibn5r$8gg$1@sea.gmane.org' target='_blank'>groups.google.com</a></p>
<a name='Meanwhile, at @Larry'></a><h1>Meanwhile, at @Larry</h1>
<p>Because so many of @Larry were tied up with the Perl Whirl, there was no Cabal
meeting this week.</p>
<a name='The Unusual Coda'></a><h1>The Unusual Coda</h1>
<a name='So long and thanks for all the fish'></a><h2>So long and thanks for all the fish</h2>
<p>Don't worry, I'm not about to stop writing summaries. However...</p>
<p>Almost since my very first summary in 2002, these summaries have been published
on the O'Reilly network's <a href='http://perl.com/' target='_blank'>perl.com</a> website. Initially the fee got
paid to the Perl Foundation and, more recently, to me (when I remembered to
invoice them -- I've only just started invoicing for 2004. That waiting for the
dollar to get stronger plan really worked for me. Not.)</p>
<p>At the end of August our editor, chromatic, informed Matt and I that O'Reilly
could no longer publish the summaries, effective immediately. Except, my mail
system was dropping stuff on the floor at the time (perfect timing eh?). I only
found out in the last week. Oops.</p>
<p>So, we're currently without a publisher. My plan at present is to continue to
send my summaries to the perl6-announce mailing list and publish my summaries
on my own website in the (possibly vain hope) of increasing my AdSense
revenue. Summaries will also  continue to appear after the traditional 2 week
delay on dev.perl.org</p>
<p>What I could really use though, is a sponsor. Until last month, the Summary was
my only regular paying gig; it didn't pay a lot, but it kept the wolf from the
door. If you're interested in sponsoring these summaries, please get in touch</p>
<p><i><a href='http://search.cpan.org/perldoc?<a href='mailto:perl6-announce-subscribe@perl.org'>perl6-announce-subscribe@perl.org</a>'>p<a href='mailto:erl6-announce-subscribe@perl.org'>erl6-announce-subscribe@perl.org</a></a></i> -- subscribe to Perl 6 announcements,
including summaries</p>
<p><a href='http://www.bofh.org.uk/category/perl-6-summaries' target='_blank'>www.bofh.org.uk</a> -- The new home of my Perl
6 Summaries</p>
<a name='Acknowledgements'></a><h2>Acknowledgements</h2>
<p>I'd like to take this opportunity to thank my editors at O'Reilly, initially
the prolific Simon Cozens and latterly the estimable chromatic. It's been
fun. Hopefully we can do it again some time.</p>
<a name='Help Chip'></a><h2>Help Chip</h2>
<p><a href='http://geeksunite.org/' target='_blank'>geeksunite.org</a> -- This must not stand</p>
<a name='The usual coda'></a><h2>The usual coda</h2>
<p>If you find these summaries useful or enjoyable, please consider
contributing to the Perl Foundation to help support the development of
Perl.</p>
<p><a href='http://donate.perl-foundation.org/' target='_blank'>donate.perl-foundation.org</a> -- The Perl Foundation</p>
<p><a href='http://dev.perl.org/perl6/' target='_blank'>dev.perl.org</a> -- Perl 6 Development site</p>
<p>Check out the rest of my website, it's lovely.</p>
<p><a href='http://www.bofh.org.uk/' target='_blank'>www.bofh.org.uk</a></p>
<p>Vaguely pretty photos by me can be found at:</p>
<p><a href='http://www.flickr.com/photos/pdcawley' target='_blank'>www.flickr.com</a></p>
</div>
